<?php

/**************************************************************************
* Source File	:  FabriqueAbstraite.php
* Author        :  Amodeos - Herleman - Kuete
* Project name  :  Gestion Annuaire des anciens de l'UM2
* Modified   	:  19/05/2010
* Description	:  Definition de la classe abstraite FabriqueAbstraite
**************************************************************************/




abstract class FabriqueAbstraite 			
{
	//Instance de la classe
	private static $instance;
	
	//Constructeur prive
	private function FabriqueAbstraite () {
		
	}
	
	//Le singleton
	public static function getInstance () {
		if (!isset(self::$instance)) {
			
			self::$instance = new FabriqueAbstraite();
		}
		
		return self::$instance;
	}
	
	
	//Attributes
	abstract public function getMembre ($uid);
	
	//methodes abstraites
	/**
	 * Fonction permettant de creer une composante.
	 * @param  $rue La rue ou se trouve la composante.
	 * @param  $cp Le code postal ou se trouve la composante.
	 * @param  $ville La ville ou se situe la composante.
	 * @param  $listeForm La liste des formations presentes dans la composante.
	 */
	
	/**
	 * Fonction permettant de creer une formation.
	 * @param $duree La duree de la formation.
	 */
	abstract public function creerFormation ($duree);
	
	/**
	 * Fonction permettant de creer un poste.
	 * @param $dateDeb la date de debut du poste.
	 * @param $dateFin la date de fin du poste.
	 * @param $fonction La fonction du membre a ce poste.
	 * @param $entreprise L'entreprise ou se deroule le stage/emploi.
	 * @param $membre Le membre occupant ce poste.
	 */
	abstract public function creerPoste ($dateDeb, $dateFin, $fonction, $entreprise, $membre);
	 	
	 
	abstract public function getListeComposante();
	
	abstract public function creerComposante ($nom, $description, $rue, $ville, $cp);

} // End Class FabriqueAbstraite


?>

